﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CMSWCSFSolution.CMS;
using CMS.Model;


namespace CMSWCSFSolution.CMS.Interface.Services
{
    public interface ICMSService
    {
        List<Student> GetAllstudents(int pageIndex, int pageSize, out int rowCount);
        List<Grade> GetAllGrades();
        Student GetStudentById(int studentId);
        void AddStudent(Student student);
        void UpdateStudent(Student student);
        void DeleteStudentById(int studentId);

        List<Teacher> GetAllTeachers(int pageIndex, int pageSize, out int rowCount);
        void AddTeacher(Teacher teacher);
        void DeleteTeacherById(int teacherId);
        List<Department> GetAllDepartments();
        List<Department> GetDepartmentById(int departmentId);
        List<Teacher> GetTeacherById(int teacherId);
        void UpdateTeacher(Teacher teacher);

        List<Course> GetCoursesByCondition(string courseName, string courseStatus, int pageIndex, int pageSize, out int rowCount);
        void DeleteCourseById(int courseId);
        void ChangeCourseStatus(Course inputCourse);
        List<Level> GetAllLevels();
        List<CourseList> GenerateCourseReport(Condition condition, int pageIndex, int pageSize, out int rowCount);

        List<Teacher> GetAllTeacher();
        List<Student> GetStudentsInCourse(int courseId);
        List<Student> GetStudentsNotInCourse(int courseId);
        void AddCourseDetail(CourseDetails courseDetail);
        void UpdateCourse(Course course);
        void DeleteAllStudentsByCourseId(int courseId);
        List<Course> GetCourseById(int courseId);
        int AddCourse(Course course);


    }
}
